home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / i / magiccon.i < prev    next >
Encoding:
Modula Implementation  |  1997-10-26  |  5.6 KB  |  172 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. IMPLEMENTATION MODULE MagicConvert;
  24.  
  25. (*----------------------------------------------------------------------*
  26.  * Int. Vers | Datum    | Name | Žnderung                               *
  27.  *-----------+----------+------+----------------------------------------*
  28.  *  3.00     | 18.01.92 |  Hp  |                                        *
  29.  *-----------+----------+------+----------------------------------------*)
  30.  
  31.  
  32.  
  33. (* IMPLEMENTATION FšR  >>> Megamax-Modula-2 <<< *)
  34. (*                                              *)
  35. (*$R-   Range-Checks                            *)
  36. (*$S-   Stack-Check                             *)
  37. (*                                              *)
  38. (*----------------------------------------------*)
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  46.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  47.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  48.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET,
  49.                         CastToChar, CastToByte, CastToByteset, CastToInt,
  50.                         CastToCard, CastToBitset, CastToWord, CastToLInt,
  51.                         CastToLCard, CastToLBitset, CastToLWord, CastToAddr,
  52.                         TosVersion, Accessory, Basepage, SysHeader, TosDate;
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. IMPORT Convert, StrConv, Strings;
  61.  
  62. VAR pos:  sCARDINAL;
  63.     bool: BOOLEAN;
  64.  
  65. PROCEDURE NumToStr (n: lCARDINAL; len, b: sCARDINAL; neg: BOOLEAN; VAR s: ARRAY OF CHAR);
  66. BEGIN
  67.  Convert.ConvLNum (n, b, len, ' ', s);
  68. END NumToStr;
  69.  
  70. PROCEDURE StrToNum (REF s: ARRAY OF CHAR; base: sCARDINAL; neg: BOOLEAN; max: lCARDINAL): lCARDINAL;
  71. BEGIN
  72.  pos:= 0;  
  73.  IF neg THEN  RETURN StrConv.StrToLInt (s, pos, bool);
  74.         ELSE  RETURN StrConv.StrToLNum (s, base, pos, bool);
  75.  END;
  76. END StrToNum;
  77.  
  78. PROCEDURE RealToStr (r: REAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
  79. VAR lr: LONGREAL;
  80. BEGIN
  81.  lr:= VAL (LONGREAL, r);
  82.  Convert.ConvFix (lr, n, n DIV 2, s);
  83. END RealToStr;
  84.  
  85. PROCEDURE StrToReal (REF s: ARRAY OF CHAR): REAL;
  86. VAR lr: LONGREAL;
  87. BEGIN
  88.  pos:= 0;
  89.  lr:= StrConv.StrToReal (s, pos, bool);
  90.  RETURN VAL (REAL, lr);
  91. END StrToReal;
  92.  
  93. PROCEDURE LRealToStr (r: LONGREAL; n: CARDINAL; VAR s: ARRAY OF CHAR);
  94. BEGIN
  95.  Convert.ConvFix (r, n, n DIV 2, s);
  96. END LRealToStr;
  97.  
  98. PROCEDURE StrToLReal (REF s: ARRAY OF CHAR): LONGREAL;
  99. BEGIN
  100.  RETURN StrConv.StrToReal (s, pos, bool);
  101. END StrToLReal;
  102.  
  103. PROCEDURE StrToInt (REF s: ARRAY OF CHAR): sINTEGER;
  104. BEGIN
  105.  pos:= 0; RETURN SHORT (StrConv.StrToLInt (s, pos, bool));
  106. END StrToInt;
  107.  
  108. PROCEDURE StrToCard (REF s: ARRAY OF CHAR): sCARDINAL;
  109. BEGIN
  110.  pos:= 0; RETURN StrConv.StrToNum (s, 10, pos, bool);
  111. END StrToCard;
  112.  
  113. PROCEDURE StrToLInt (REF s: ARRAY OF CHAR): lINTEGER;
  114. BEGIN
  115.  pos:= 0; RETURN StrConv.StrToLInt (s, pos, bool);
  116. END StrToLInt;
  117.  
  118. PROCEDURE StrToLCard (REF s: ARRAY OF CHAR): lCARDINAL;
  119. BEGIN
  120.  pos:= 0; RETURN StrConv.StrToLNum (s, 10, pos, bool);
  121. END StrToLCard;
  122.  
  123. PROCEDURE HexToCard (REF s: ARRAY OF CHAR): sCARDINAL;
  124. BEGIN
  125.  pos:= 0; RETURN StrConv.StrToNum (s, 16, pos, bool);
  126. END HexToCard;
  127.  
  128. PROCEDURE IntToStr (i: sINTEGER; n: sCARDINAL; VAR s: ARRAY OF CHAR);
  129. BEGIN
  130.  Convert.ConvInt (i, n, s);
  131. END IntToStr;
  132.  
  133. PROCEDURE CardToStr (c: sCARDINAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
  134. BEGIN
  135.  Convert.ConvLNum (c, 10, n, ' ', s);
  136. END CardToStr;
  137.  
  138. PROCEDURE CardToHexStr (c: sCARDINAL; n: sCARDINAL; VAR s: ARRAY OF CHAR);
  139. BEGIN
  140.  Convert.ConvLNum (c, 16, n, ' ', s);
  141. END CardToHexStr;
  142.  
  143. PROCEDURE LIntToStr (l: lINTEGER; n: sCARDINAL; VAR s: ARRAY OF CHAR);
  144. BEGIN
  145.  Convert.ConvInt (l, n, s);
  146. END LIntToStr;
  147.  
  148. PROCEDURE LCardToStr (c: LONGCARD; n: CARDINAL; VAR s: ARRAY OF CHAR);
  149. BEGIN
  150.  Convert.ConvLNum (c, 10, n, ' ', s);
  151. END LCardToStr;
  152.  
  153. PROCEDURE FixRealToStr  (w: REAL; n, l: sCARDINAL; VAR s: ARRAY OF CHAR);
  154. BEGIN
  155.  Convert.ConvFix (LONG(w), n, l, s);
  156. END FixRealToStr;
  157.  
  158. PROCEDURE FixLRealToStr  (w: LONGREAL; n, l: sCARDINAL; VAR s: ARRAY OF CHAR);
  159. BEGIN
  160.  Convert.ConvFix (w, n, l, s);
  161. END FixLRealToStr;
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. END MagicConvert.
  171.  
  172.